package com.peanut.bosskg.entity.bigredpack;

import lombok.Data;

import java.io.Serializable;

@Data
public class PaymentReqVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 产品(MONEY:零钱,REDPACK:红包,MONEY_ALIPAY:支付宝零钱,BIGREDPACK:大额红包)
     */
    private String productSubType;

    /**
     * 商户的微信公众号或小程序appid（产品为MONEY:零钱,REDPACK:红包时必填）
     */
    private String appId;

    /**
     * 服务商id
     */
    private Long providerId;

    /**
     * 商户订单号
     */
    private String merOrderId;

    /**
     * 金额
     */
    private Long amt;

    /**
     * 商户用户id（产品为大额红包，且调用支付宝签约成功时可用）
     */
    private String merUserId;

    /**
     * 收款人姓名
     */
    private String payeeName;

    /**
     * 收款人账号
     */
    private String payeeAcc;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 手机号
     */
    private String mobile;


    /**
     * 备注
     */
    private String memo;

    /**
     * 产品为(REDPACK:红包) 红包名称 不能为空
     * 产品为(MONEY_ALIPAY:支付宝零钱长度限制32) 支付宝标题 不能为空
     */
    private String redPackName;

    /**
     * 红包祝福语(产品为“REDPACK:红包”时必填)
     */
    private String wishing;

    /**
     * 场景类型（产品为“REDPACK:红包”金额大于200元时必填）
     * PROMOTION("促销")
     * DRAWING("抽奖")
     * REWARD("兑奖")
     * BENEIFT("福利")
     * SHARE("分润")
     * REPAYMENT("回馈")
     * AWARD("派奖")
     * SCRATCH_AWARD("刮奖")
     */
    private String sceneType;


    /**
     * 营销活动ID或任务ID（当产品类型为大额红包时，传输为任务ID，当产品类型非大额红包时，传活动ID）
     */
    private Long activityId;


    /**
     * 活动交付物,活动交付物配置必传时此字段不为空
     */
    private DeliverVO activityDeliver;


    /**
     * 付款方式 0：银行卡，1：支付宝，2：微信
     */
    private Integer paymentType;


    @Data
    public static class DeliverVO implements Serializable {

        /**
         * 商品名称
         */
        private String name;

        /**
         * 商品价格
         */
        private Long amount;

        /**
         * 商品附件
         */
        private String attachment;
        /**
         * 商品附件类型
         */
        private String attachmentType;

    }


}
